package com.wy.sloth.core;

import com.alibaba.fastjson.JSONObject;
import com.wy.sloth.model.SlothMessage;
import com.wy.sloth.model.SlothReceipt;

/**
 * 消息发送器
 * 
 * @author wangyuan
 * @since 2019年1月31日
 */
public interface SlothSender {

    /**
     * 发送消息
     * @param type 消息类型
     * @param data 附带的数据
     * @return 如果是同步消息，将返回SlothReceipt实例，否则为NULL
     */
    public SlothReceipt send(String type, JSONObject data);
    
    /**
     * 发送消息
     * @param message 消息实体
     * @return 如果是同步消息，将返回SlothReceipt实例，否则为NULL
     */
    public SlothReceipt send(SlothMessage message);
}
